ফোরট্রানে Module তৈরি এবং ব্যবহার
ফোরট্রান 90 সংস্করণ থেকে Module সংজ্ঞায়িত করা শুরু হয়, যা কোডের পুনঃব্যবহারযোগ্যতা, মডুলারিটি এবং কোডের রক্ষণাবেক্ষণ সহজ করে তোলে। Module ব্যবহার করে আপনি ফাংশন, সাবরুটিন, এবং ডেটা (যেমন, ভ্যারিয়েবল বা অ্যারে) সংজ্ঞায়িত করতে পারেন এবং সেগুলি অন্য প্রোগ্রামে পুনরায় ব্যবহার করতে পারেন।
এখানে ফোরট্রানে Module তৈরি এবং ব্যবহার করার ধাপগুলো আলোচনা করা হলো।
১. Module তৈরি করা
ফোরট্রানে একটি Module তৈরি করতে module কিওয়ার্ড ব্যবহার করা হয়। মডিউলের মধ্যে আপনি ফাংশন, সাবরুটিন এবং ডেটা (যেমন ভ্যারিয়েবল, কনস্ট্যান্ট) সংজ্ঞায়িত করতে পারেন, এবং এই মডিউলগুলো অন্য প্রোগ্রামে use কিওয়ার্ডের মাধ্যমে অন্তর্ভুক্ত করা হয়।
Module তৈরি করার সাধারণ গঠন:
module module_name
! মডিউলের ভ্যারিয়েবল এবং ফাংশন/সাবরুটিন ডিক্লারেশন
contains
! ফাংশন বা সাবরুটিন ডিক্লারেশন
end module module_name- module_name: মডিউলের নাম।
- contains: এই শব্দটি মডিউলের ফাংশন এবং সাবরুটিনগুলির ডিক্লারেশন সূচিত করে।
মডিউল তৈরি করার উদাহরণ:
module math_operations
implicit none
contains
! একটি ফাংশন যা দুটি সংখ্যা যোগ করবে
function add_numbers(x, y)
real :: add_numbers
real, intent(in) :: x, y
add_numbers = x + y
end function add_numbers
! একটি সাবরুটিন যা দুটি সংখ্যা গুন করবে
subroutine multiply_numbers(x, y, result)
real, intent(in) :: x, y
real, intent(out) :: result
result = x * y
end subroutine multiply_numbers
end module math_operationsএখানে:
math_operationsনামের একটি মডিউল তৈরি করা হয়েছে।- মডিউলের মধ্যে একটি ফাংশন (
add_numbers) এবং একটি সাবরুটিন (multiply_numbers) ডিক্লেয়ার করা হয়েছে।
২. Module ব্যবহার করা
ফোরট্রানে মডিউল ব্যবহার করতে হলে use কিওয়ার্ড ব্যবহার করতে হয়। আপনি যেকোনো প্রোগ্রামে মডিউল ব্যবহার করতে পারেন এবং সেই মডিউলের ফাংশন বা সাবরুটিন কল করতে পারেন।
Module ব্যবহার করার উদাহরণ:
program module_usage
use math_operations ! math_operations মডিউল ব্যবহার করা হচ্ছে
implicit none
real :: a, b, sum, product
! মান নির্ধারণ
a = 5.0
b = 10.0
! ফাংশন কল
sum = add_numbers(a, b)
! সাবরুটিন কল
call multiply_numbers(a, b, product)
! আউটপুট
print *, 'Sum of ', a, ' and ', b, ' is: ', sum
print *, 'Product of ', a, ' and ', b, ' is: ', product
end program module_usageএখানে:
use math_operationsদিয়েmath_operationsমডিউলটি ব্যবহার করা হয়েছে।add_numbers(a, b)ফাংশনটি ব্যবহার করে দুটি সংখ্যার যোগফল বের করা হয়েছে।call multiply_numbers(a, b, product)সাবরুটিনটি ব্যবহার করে দুটি সংখ্যার গুণফল বের করা হয়েছে।
আউটপুট:
Sum of 5.0 and 10.0 is: 15.0
Product of 5.0 and 10.0 is: 50.0৩. Module এর সুবিধা
- কোডের পুনঃব্যবহারযোগ্যতা: একবার মডিউল তৈরি করার পরে, এটি বিভিন্ন প্রোগ্রামে ব্যবহার করা যায়, যার ফলে কোড পুনরায় লেখা এড়ানো যায়।
- মডুলারিটি: মডিউল ব্যবহার করে কোডটি অনেক বেশি মডুলার এবং রক্ষণাবেক্ষণযোগ্য হয়ে ওঠে।
- নিরাপত্তা এবং সংরক্ষণ: মডিউলের মাধ্যমে আপনি নির্দিষ্ট ফাংশন বা সাবরুটিনগুলি প্রোগ্রামের অন্যান্য অংশ থেকে বিচ্ছিন্নভাবে ব্যবহার করতে পারেন, যা নিরাপদ কোড উন্নয়নে সহায়ক।
- নাম সংঘর্ষ এড়ানো: মডিউলগুলি তাদের নিজস্ব scope (সীমার মধ্যে) কাজ করে, তাই একই নামের ভ্যারিয়েবল বা ফাংশন অন্য কোথাও ব্যবহার করা হলেও কোনো সমস্যা হয় না।
৪. Module পুনঃব্যবহার এবং অ্যাক্সেস কন্ট্রোল
ফোরট্রানে আপনি মডিউলের উপাদানগুলির অ্যাক্সেস কন্ট্রোল করতে public এবং private কিওয়ার্ড ব্যবহার করতে পারেন।
public: মডিউলের যেকোনো অংশকে পাবলিক করে দেয়, অর্থাৎ এটি ব্যবহারকারী প্রোগ্রামে অ্যাক্সেস করা যাবে।private: মডিউলের অংশগুলোকে প্রাইভেট করে দেয়, অর্থাৎ এটি বাইরে অ্যাক্সেসযোগ্য হবে না।
উদাহরণ:
module math_operations
implicit none
private ! সমস্ত উপাদান প্রাইভেট, এক্সপোজ করতে হলে পাবলিক করতে হবে
public :: add_numbers ! শুধুমাত্র এই ফাংশনটি পাবলিক
contains
function add_numbers(x, y)
real :: add_numbers
real, intent(in) :: x, y
add_numbers = x + y
end function add_numbers
private
subroutine multiply_numbers(x, y, result)
real, intent(in) :: x, y
real, intent(out) :: result
result = x * y
end subroutine multiply_numbers
end module math_operationsএখানে:
add_numbersফাংশনটি public এবং multiply_numbers সাবরুটিনটি private, ফলে শুধুমাত্রadd_numbersফাংশনটি বাইরের প্রোগ্রামে অ্যাক্সেসযোগ্য হবে।
উপসংহার
ফোরট্রানে Module কোডের পুনঃব্যবহারযোগ্যতা এবং মডুলারিটি নিশ্চিত করে। মডিউলের মাধ্যমে আপনি ফাংশন, সাবরুটিন, এবং ডেটার একটি কোড ব্লক তৈরি করতে পারেন, যা বিভিন্ন প্রোগ্রামে পুনরায় ব্যবহার করা যায়। এর মাধ্যমে আপনি কোড রক্ষণাবেক্ষণ সহজ করতে পারেন এবং একাধিক কাজকে একত্রিত করে কার্যকরী এবং পরিস্কার কোড তৈরি করতে সক্ষম হন।
Read more